type go/types.Struct
69 uses
go/types (current package)
builtins.go#L944: case *Struct:
decl.go#L805: if t, _ := base.under().(*Struct); t != nil {
gcsizes.go#L27: case *Struct:
gcsizes.go#L136: case *Struct:
infer.go#L584: case *Struct:
infer.go#L739: case *Struct:
iter.go#L86: func (s *Struct) Fields() iter.Seq[*Var] {
literals.go#L150: case *Struct:
lookup.go#L168: case *Struct:
lookup.go#L498: func hasInvalidEmbeddedFields(T Type, seen map[*Struct]bool) bool {
lookup.go#L499: if S, _ := under(derefStructPtr(T)).(*Struct); S != nil && !seen[S] {
lookup.go#L501: seen = make(map[*Struct]bool)
lookup.go#L595: if _, ok := under(p.base).(*Struct); ok {
methodset.go#L137: case *Struct:
mono.go#L258: case *Struct:
operand.go#L243: case *Struct:
predicates.go#L178: case *Struct:
predicates.go#L290: case *Struct:
predicates.go#L295: if y, ok := y.(*Struct); ok {
sizes.go#L65: case *Struct:
sizes.go#L209: case *Struct:
sizes.go#L288: func (conf *Config) offsetsof(T *Struct) []int64 {
sizes.go#L313: s := under(T).(*Struct)
struct.go#L18: type Struct struct {
struct.go#L27: func NewStruct(fields []*Var, tags []string) *Struct {
struct.go#L37: s := &Struct{fields: fields, tags: tags}
struct.go#L43: func (s *Struct) NumFields() int { return len(s.fields) }
struct.go#L46: func (s *Struct) Field(i int) *Var { return s.fields[i] }
struct.go#L49: func (s *Struct) Tag(i int) string {
struct.go#L56: func (t *Struct) Underlying() Type { return t }
struct.go#L57: func (t *Struct) String() string { return TypeString(t, nil) }
struct.go#L62: func (s *Struct) markComplete() {
struct.go#L68: func (check *Checker) structType(styp *Struct, e *ast.StructType) {
subst.go#L135: case *Struct:
subst.go#L137: s := &Struct{fields: fields, tags: t.tags}
typestring.go#L148: case *Struct:
typexpr.go#L331: typ := new(Struct)
unify.go#L604: case *Struct:
unify.go#L609: if y, ok := y.(*Struct); ok {
validtype.go#L55: case *Struct:
golang.org/x/exp/apidiff
compatibility.go#L17: case *types.Struct:
compatibility.go#L18: if new, ok := new.(*types.Struct); ok {
compatibility.go#L153: func (d *differ) checkCompatibleStruct(obj types.Object, old, new *types.Struct) {
compatibility.go#L164: func exportedFields(s *types.Struct) map[string]types.Object {
compatibility.go#L180: func exportedSelectableFields(s *types.Struct) map[string]types.Object {
compatibility.go#L183: next []*types.Struct // embedded structs at the next depth
compatibility.go#L184: seen []*types.Struct // to handle recursive embedding
compatibility.go#L186: for cur := []*types.Struct{s}; len(cur) > 0; cur, next = next, nil {
compatibility.go#L206: if t, ok := t.(*types.Struct); ok && !contains(seen, t) {
compatibility.go#L214: func contains(ts []*types.Struct, t *types.Struct) bool {
compatibility.go#L225: func unambiguousFields(structs []*types.Struct) map[string]*types.Var {
correspondence.go#L77: case *types.Struct:
correspondence.go#L78: if new, ok := new.(*types.Struct); ok {
golang.org/x/tools/go/types/objectpath
objectpath.go#L500: case *types.Struct:
objectpath.go#L746: structType, ok := t.(*types.Struct)
golang.org/x/tools/go/types/typeutil
map.go#L237: case *types.Struct:
map.go#L450: case *types.Struct:
golang.org/x/tools/internal/gcimporter
iexport.go#L1071: case *types.Struct:
ureader_yes.go#L383: func (r *reader) structType() *types.Struct {
golang.org/x/tools/internal/typeparams
free.go#L61: case *types.Struct:
golang.org/x/tools/internal/typesinternal
element.go#L112: case *types.Struct:
zerovalue.go#L65: case *types.Struct, *types.Array:
zerovalue.go#L73: case *types.Struct, *types.Array:
zerovalue.go#L84: case *types.Array, *types.Struct:
zerovalue.go#L158: case *types.Struct, *types.Array:
zerovalue.go#L168: case *types.Struct, *types.Array:
zerovalue.go#L176: case *types.Array, *types.Struct:
zerovalue.go#L341: case *types.Struct: